//package vip.xiaonuo.core.utils;
//
//import org.apache.poi.ss.usermodel.*;
//import org.springframework.util.CollectionUtils;
//import org.springframework.web.multipart.MultipartFile;
//import vip.xiaonuo.common.exception.CommonException;
//import vip.xiaonuo.core.procurementDirectory.entity.Inventory;
//import vip.xiaonuo.core.procurementDirectory.entity.ProcurementDirectory;
//
//import java.io.InputStream;
//import java.math.BigDecimal;
//import java.util.ArrayList;
//import java.util.List;
//
//public class ExcelUtil {
//
//    /**
//     * 导入采购名录表数据到excel
//     * 根据字段名找到对应的列
//     */
//    public static List<ProcurementDirectory> importExcelToProcurementDirectory(MultipartFile file) {
//        List<ProcurementDirectory> list = new ArrayList<>();
//        try {
//            InputStream inputStream = file.getInputStream();
//            Workbook workbook = WorkbookFactory.create(inputStream);
//            Sheet sheet = workbook.getSheetAt(0);
//            if (sheet == null) {
//                throw new CommonException("sheet名不存在");
//            }
//            Integer deviceNameColNum = null, specificationsColNum = null,modelColNum=null,brandColNum=null, productPriceColNum = null, remarkColNum = null;
//            int rows = sheet.getPhysicalNumberOfRows();
//            if (rows > 0) {
//                // 有数据时才处理 得到类的所有field.
//                //表头占用列数
//                for(int i = 0;i<rows;i++){
//                    if(i ==0){
//                        Row row = sheet.getRow(i);
//                        if (row == null) {
//                            throw new CommonException("必须有表头，否则无法继续");
//                        }
//                        int cellNum = sheet.getRow(0).getLastCellNum();
//                        for (int j = 0; j < cellNum; j++) {
//                            Cell cell = row.getCell(j);
//                            if (cell.getStringCellValue().equals("设备名称")) {
//                                deviceNameColNum = j;
//                            } else if (cell.getStringCellValue().equals("规格")) {
//                                specificationsColNum = j;
//                            } else if (cell.getStringCellValue().equals("型号")) {
//                                modelColNum = j;
//                            } else if (cell.getStringCellValue().equals("品牌")) {
//                                brandColNum = j;
//                            } else if (cell.getStringCellValue().equals("价格")) {
//                                productPriceColNum = j;
//                            } else if (cell.getStringCellValue().equals("备注")) {
//                                remarkColNum = j;
//                            }
//                        }
//                    }else{
//                        Row row = sheet.getRow(i);
//                        if (row == null) {
//                            break;
//                        }
//                        ProcurementDirectory procurementDirectory = new ProcurementDirectory();
//                      //  Cell deviceNameCol = null,specificationsCol = null ,modelCol = null,brandCol=null,productPriceCol=null,remarkCol = null;
//                        if (deviceNameColNum!=null) {
//                            Cell deviceNameCol = row.getCell(deviceNameColNum);
//                            procurementDirectory.setDeviceName(deviceNameCol.getStringCellValue());
//                        }
//                        if(specificationsColNum!=null){
//                            Cell specificationsCol = row.getCell(specificationsColNum);
//                            procurementDirectory.setSpecifications(specificationsCol.getStringCellValue());
//                        }
//                        if(modelColNum!=null){
//                            Cell modelCol = row.getCell(modelColNum);
//                            procurementDirectory.setModel(modelCol.getStringCellValue());
//                        }
//                        if(brandColNum!=null){
//                            Cell brandCol = row.getCell(brandColNum);
//                            procurementDirectory.setBrand(brandCol.getStringCellValue());
//                        }
//                        if(productPriceColNum!=null){
//                            Cell productPriceCol = row.getCell(productPriceColNum);
//                            procurementDirectory.setProductPrice(new BigDecimal(productPriceCol.getNumericCellValue()));
//                        }
//                        if(remarkColNum!=null){
//                            if(row.getCell(remarkColNum)!=null){
//                                Cell remarkCol = row.getCell(remarkColNum);
//                                if(remarkCol.getStringCellValue()!=null){
//                                    procurementDirectory.setRemark(remarkCol.getStringCellValue());
//                                }
//                            }
//                        }
//                        EntityUtils.setCreateInfo(procurementDirectory);
//                        if(procurementDirectory != null){
//                            list.add(procurementDirectory);
//                        }
//                    }
//                }
//                if (CollectionUtils.isEmpty(list)) {
//                    throw new CommonException("导入的数据为空");
//                }
//            }
//            inputStream.close();
//        }catch (NullPointerException nullPointerException){
//            throw new CommonException("某个字段不允许为空");
//        }catch (Exception e){
//            throw new CommonException(e.toString());
//        }
//        return list;
//
//    }
//
//    public static List<Inventory> importExcelToInventory(MultipartFile multipartFile) {
//        List<Inventory> list = new ArrayList<>();
//        try {
//            InputStream inputStream = multipartFile.getInputStream();
//            Workbook workbook = WorkbookFactory.create(inputStream);
//            Sheet sheet = workbook.getSheetAt(0);
//            if (sheet == null) {
//                throw new CommonException("sheet名不存在");
//            }
//            Integer deviceNameColNum = null, specificationsColNum = null,modelColNum=null,brandColNum=null,locationColNum = null,numberColNum = null;
//            int rows = sheet.getPhysicalNumberOfRows();
//            if (rows > 0) {
//                // 有数据时才处理 得到类的所有field.
//                //表头占用列数
//                for(int i = 0;i<rows;i++){
//                    if(i ==0){
//                        Row row = sheet.getRow(i);
//                        if (row == null) {
//                            throw new CommonException("必须有表头，否则无法继续");
//                        }
//                        int cellNum = sheet.getRow(0).getLastCellNum();
//                        for (int j = 0; j < cellNum; j++) {
//                            Cell cell = row.getCell(j);
//                            if (cell.getStringCellValue().equals("设备名称")) {
//                                deviceNameColNum = j;
//                            } else if (cell.getStringCellValue().equals("规格")) {
//                                specificationsColNum = j;
//                            } else if (cell.getStringCellValue().equals("型号")) {
//                                modelColNum = j;
//                            } else if (cell.getStringCellValue().equals("品牌")) {
//                                brandColNum = j;
//                            } else if (cell.getStringCellValue().equals("存放位置")) {
//                                locationColNum = j;
//                            } else if (cell.getStringCellValue().equals("数量")) {
//                                numberColNum = j;
//                            }
//                        }
//                    }else{
//                        Row row = sheet.getRow(i);
//                        if (row == null) {
//                            break;
//                        }
//                        Inventory inventory = new Inventory();
//                        //  Cell deviceNameCol = null,specificationsCol = null ,modelCol = null,brandCol=null,productPriceCol=null,remarkCol = null;
//                        if (deviceNameColNum!=null) {
//                            Cell deviceNameCol = row.getCell(deviceNameColNum);
//                            inventory.setDeviceName(deviceNameCol.getStringCellValue());
//                        }
//                        if(specificationsColNum!=null){
//                            Cell specificationsCol = row.getCell(specificationsColNum);
//                            inventory.setSpecifications(specificationsCol.getStringCellValue());
//                        }
//                        if(modelColNum!=null){
//                            Cell modelCol = row.getCell(modelColNum);
//                            inventory.setModel(modelCol.getStringCellValue());
//                        }
//                        if(brandColNum!=null){
//                            Cell brandCol = row.getCell(brandColNum);
//                            inventory.setBrand(brandCol.getStringCellValue());
//                        }
//                        if(numberColNum!=null){
//                            Cell numberCol = row.getCell(numberColNum);
//                            inventory.setNumber((int)(numberCol.getNumericCellValue()));
//                        }
//                        if(locationColNum!=null){
//                            if(row.getCell(locationColNum)!=null){
//                                Cell locationCol = row.getCell(locationColNum);
//                                if(locationCol.getStringCellValue()!=null){
//                                    inventory.setLocation(locationCol.getStringCellValue());
//                                }
//                            }
//                        }
//                        EntityUtils.setCreateInfo(inventory);
//                        if(inventory != null){
//                            list.add(inventory);
//                        }
//                    }
//                }
//                if (CollectionUtils.isEmpty(list)) {
//                    throw new CommonException("导入的数据为空");
//                }
//            }
//            inputStream.close();
//        }catch (NullPointerException nullPointerException){
//            throw new CommonException("某个字段不允许为空");
//        }catch (Exception e){
//            throw new CommonException(e.toString());
//        }
//        return list;
//    }
//}
